package com.lhweb.springsecurity.security;

import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;

/**
 * 单点登录：在登陆某系统后，可以再其子系统或者其它系统登陆时免登录，
 * 可能是多系统，目前最好的做法是实现统一的中心权限管理系统。
 * 单点登录需解决两个问题：登陆凭证token的保存与跨域传输
 * 通常解决方案是登陆系统后生成免登录加密字符串，以cookie的形式存储在客户端，在登陆免登
 * 系统时，将验证此安全cookie以实现多系统之间的免登录
 * 
 * 自定义安全凭证类，从request中获取 扩展Spring security的UsernamePasswordAuthenticationToken实现
 * 在此基础上新增安全凭证字段
 * 
 * @author liuhuan 2015年1月13日 上午10:35:57
 */
public class SignedUsernamePasswordAuthenticationToken extends
		UsernamePasswordAuthenticationToken {
	private static final long serialVersionUID = 1L;
	private String requestSignature;	// 扩展的安全凭证字段，以保存从请求中获得token,以实现单点登录
	
	//构造方法
	public SignedUsernamePasswordAuthenticationToken(Object principal,
			String credentials,String signature) {
		super(principal, credentials);
		this.requestSignature = signature;
	}
	
	public String getRequestSignature() {
		return requestSignature;
	}

	public void setRequestSignature(String requestSignature) {
		this.requestSignature = requestSignature;
	}

}
